const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/US3ZY28U1oIxh7.js","assets/DAXXjFlN13g7BR.js","assets/Czpn1I533HBrwJ.js"])))=>i.map(i=>d[i]);
import{Ct as e,I as t,O as n,at as r,ct as i,et as a,lt as o,ut as s}from"./B603vO-13smUKN.js";import{f as c}from"./DcIns0se4bdVKJ.js";import{t as l}from"./Czpn1I533HBrwJ.js";import{t as u}from"./DlSw0f3J2COXyf.js";import{a as d,c as f,i as p,n as m,r as h,s as g,t as _}from"./Cp19cqG_2COXyf.js";var v=`EUR`,y={};function b(e,t={}){if(e==null)return``;let{currency:n=v,locale:r,digits:i=2}=t,a=`${r}-${n}-${i}`,o=y[a];if(o==null){let e=i??new Intl.NumberFormat(r,{style:`currency`,currency:n}).resolvedOptions().maximumFractionDigits;o=new Intl.NumberFormat(r,{maximumFractionDigits:e,minimumFractionDigits:e}),y[a]=o}return o.format(e)}function x(e,t={}){if(e==null)return``;let{locale:n}=t;return c(e).toLocaleDateString(n,{day:`2-digit`,month:`2-digit`,year:`2-digit`})??``}function S(e,t={}){if(e==null)return``;let{locale:n}=t;return c(e).toLocaleDateString(n,{day:`2-digit`,month:`2-digit`,year:`numeric`})??``}function C(e,t={}){e||=0;let{locale:n}=t;return(e/100).toLocaleString(n,{style:`percent`,minimumSignificantDigits:1,maximumFractionDigits:3})}function w(e,t={}){if(!e)return``;let{locale:n,minimumFractionDigits:r=0,maximumFractionDigits:i=Math.max(20,r)}=t??{};return e.toLocaleString(n,{style:`decimal`,useGrouping:!1,minimumFractionDigits:r,maximumFractionDigits:i})}var T=s(`mini-locale`);function E(e){function t(t,n){try{let r=t.split(`.`).reduce((e,n)=>e&&typeof e==`object`?e[n]:t,e);return typeof r==`string`?n?Object.keys(n).reduce((e,t)=>e.replace(`{${t}}`,String(n[t])),r):r:(T.warn(`Failed to translate key`,t,r),t)}catch(e){return T.warn(`Failed to translate key`,t,e),t}}return{t}}var D;async function O(){return D||=await l(()=>import(`./US3ZY28U1oIxh7.js`),__vite__mapDeps([0,1,2])),D}function k(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}async function ee(e,t,n){let{PdfArray:r,PdfName:i,PdfStream:a}=await O(),o=t.keywords.join(` `),s=`
<x:xmpmeta xmlns:x="adobe:ns:meta/">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/"
      rdf:about=""
      xmp:CreatorTool="${k(t.creatorTool)}"
      xmp:CreateDate="${t.documentCreationDate.toISOString()}"
      xmp:ModifyDate="${t.documentModificationDate.toISOString()}"/>
    <rdf:Description xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
      pdf:Producer="${k(t.producer)}"
      pdf:Keywords="${k(o)}"
      rdf:about=""/>
    <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" rdf:about="">
      <dc:title><rdf:Alt><rdf:li xml:lang="x-default">${k(t.title)}</rdf:li></rdf:Alt></dc:title>
      <dc:creator><rdf:Seq><rdf:li>${k(t.author)}</rdf:li></rdf:Seq></dc:creator>
      <dc:description><rdf:Alt><rdf:li xml:lang="x-default">${k(t.subject)}</rdf:li></rdf:Alt></dc:description>
    </rdf:Description>
    <rdf:Description xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"
      pdfaid:conformance="B"
      pdfaid:part="3"
      rdf:about=""/>
    ${n??``}
    <rdf:Description xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
      xmlns:pdfaField="http://www.aiim.org/pdfa/ns/field#"
      xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#"
      xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
      xmlns:pdfaType="http://www.aiim.org/pdfa/ns/type#" rdf:about="">
      <pdfaExtension:schemas>
        <rdf:Bag>
          <rdf:li rdf:parseType="Resource">
            <pdfaSchema:schema>Factur-X PDFA Extension Schema</pdfaSchema:schema>
            <pdfaSchema:namespaceURI>${f}</pdfaSchema:namespaceURI>
            <pdfaSchema:prefix>fx</pdfaSchema:prefix>
            <pdfaSchema:property>
              <rdf:Seq>
                <rdf:li rdf:parseType="Resource">
                  <pdfaProperty:name>DocumentFileName</pdfaProperty:name>
                  <pdfaProperty:valueType>Text</pdfaProperty:valueType>
                  <pdfaProperty:category>external</pdfaProperty:category>
                  <pdfaProperty:description>name of the embedded XML invoice file</pdfaProperty:description>
                </rdf:li>
                <rdf:li rdf:parseType="Resource">
                  <pdfaProperty:name>DocumentType</pdfaProperty:name>
                  <pdfaProperty:valueType>Text</pdfaProperty:valueType>
                  <pdfaProperty:category>external</pdfaProperty:category>
                  <pdfaProperty:description>INVOICE</pdfaProperty:description>
                </rdf:li>
                <rdf:li rdf:parseType="Resource">
                  <pdfaProperty:name>Version</pdfaProperty:name>
                  <pdfaProperty:valueType>Text</pdfaProperty:valueType>
                  <pdfaProperty:category>external</pdfaProperty:category>
                  <pdfaProperty:description>The actual version of the ZUGFeRD data</pdfaProperty:description>
                </rdf:li>
                <rdf:li rdf:parseType="Resource">
                  <pdfaProperty:name>ConformanceLevel</pdfaProperty:name>
                  <pdfaProperty:valueType>Text</pdfaProperty:valueType>
                  <pdfaProperty:category>external</pdfaProperty:category>
                  <pdfaProperty:description>The conformance level of the ZUGFeRD data</pdfaProperty:description>
                </rdf:li>
              </rdf:Seq>
            </pdfaSchema:property>
          </rdf:li>
        </rdf:Bag>
      </pdfaExtension:schemas>
    </rdf:Description>
  </rdf:RDF>
</x:xmpmeta>
`.trim(),c=new TextEncoder().encode(s),l=new a([[`Type`,i.of(`Metadata`)],[`Subtype`,i.of(`XML`)],[`Filter`,new r([])]],c),u=e.register(l);e.getCatalog().set(i.of(`Metadata`),u),e.setMetadata({title:t.title,author:t.author,subject:t.subject,keywords:t.keywords,producer:t.producer,creator:t.creatorTool,creationDate:t.documentCreationDate,modificationDate:t.documentModificationDate})}var A=r(`AAAL0AAAAAACAAAAbW50clJHQiBYWVogB98AAgAPAAAAAAAAYWNzcAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAPbWAAEAAAAA0y0AAAAAPQ6y3q6Tl76bZybOjApDzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQZGVzYwAAAUQAAABjYlhZWgAAAagAAAAUYlRSQwAAAbwAAAgMZ1RSQwAAAbwAAAgMclRSQwAAAbwAAAgMZG1kZAAACcgAAACIZ1hZWgAAClAAAAAUbHVtaQAACmQAAAAUbWVhcwAACngAAAAkYmtwdAAACpwAAAAUclhZWgAACrAAAAAUdGVjaAAACsQAAAAMdnVlZAAACtAAAACHd3RwdAAAC1gAAAAUY3BydAAAC2wAAAA3Y2hhZAAAC6QAAAAsZGVzYwAAAAAAAAAJc1JHQjIwMTQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAAAkoAAAD4QAALbPY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//9kZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi0xIERlZmF1bHQgUkdCIENvbG91ciBTcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAAAAAUAAAAAAAAG1lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlhZWiAAAAAAAAAAngAAAKQAAACHWFlaIAAAAAAAAG+iAAA49QAAA5BzaWcgAAAAAENSVCBkZXNjAAAAAAAAAC1SZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDIDYxOTY2LTItMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPbWAAEAAAAA0y10ZXh0AAAAAENvcHlyaWdodCBJbnRlcm5hdGlvbmFsIENvbG9yIENvbnNvcnRpdW0sIDIwMTUAAHNmMzIAAAAAAAEMRAAABd////MmAAAHlAAA/Y////uh///9ogAAA9sAAMB1`);async function j(e){let{PdfDict:t,PdfName:n,PdfString:r,PdfArray:i}=await O(),a=e.createStream([[`Length`,A.length]],A),o=e.register(new t([[`Type`,n.of(`OutputIntent`)],[`S`,n.of(`GTS_PDFA1`)],[`OutputConditionIdentifier`,r.fromString(`sRGB`)],[`DestOutputProfile`,a]]));e.getCatalog().set(n.of(`OutputIntents`),new i([o]))}async function M(){let{PDF:e}=await O();return e.create()}async function N(e,t){let{PdfArray:r,PdfDict:a,PdfName:o,PdfString:s}=await O(),c=i(n()),l=s.fromString(c);return e.context.info.trailer.set(o.of(`ID`),new r([l,l])),await j(e),e}async function te(e){return N(await M())}function ne(e,t,n,r){let i=[];for(let a of e.split(`
`)){let e=a.split(` `),o=``;for(let a of e){let e=o?`${o} ${a}`:a;r.widthOfTextAtSize(e,n)>t&&o?(i.push(o),o=a):o=e}i.push(o)}return i}async function re(e={}){let{Standard14Font:t,StandardFonts:n,rgb:r}=await O(),{debug:i=!1,paperSize:a=[595,842],createFirstPage:s=!0,fontSize:c=10,lineHeight:l=d}=e,f=await(e.pdfa?te():M()),p;s&&(p=f.addPage({width:a[0],height:a[1]}));let m=1,h=p?.width??a[0],g=p?.height??a[1],_=(h/210+g/297)/2,v=h/_,y=g/_,b=e.fontRegular??n.Helvetica,x=e.fontBold??n.HelveticaBold;function S(n){if(typeof n==`string`){let r=t.of(n);return{widthOfTextAtSize:(e,t)=>r.widthOfTextAtSize(e,t),heightAtSize:e=>r.heightAtSize(e),drawTextOptions:()=>{if(e.pdfa)throw Error(`PDF/A requires embedded fonts, but the non-embedded Standard-14 font "${n}" was used to draw text. Pass fontRegular/fontBold as binary TTF data when pdfa is enabled.`);return{fontName:n}}}}let r=f.embedFont(o(n));return{widthOfTextAtSize:(e,t)=>r.widthOfTextAtSize(e,t),heightAtSize:e=>r.heightAtSize(e),drawTextOptions:()=>({font:r})}}let C=S(b),w=S(x),T=C;await e.onSetup?.(f);let E=0,D=0,k={x:0,y:0,w:h,h};function A(){return E}function j(){return D}function N(e){return e*_}function re(e){return g-e*_}function ie(e){return E=e,E}function ae(e){return D=e,D}function P(){return p}function F(){i&&p?.drawRectangle({x:k.x*_,y:g-k.y*_-k.h*_,width:k.w*_,height:k.h*_,color:r(1,0,0),opacity:.1,borderWidth:.5})}function I(e){k.x=e.x??0,k.y=e.y??0,k.w=e.w??v-k.x,k.h=e.h??y-k.y,E=k.x,D=k.y,F()}e.layout&&I(e.layout);function L(e){return D+=e,D}function R(e){return E+=e,E}function z(e){if(p==null)return;let t=e.font??w,n=e.text,i=e.rotation??55,a=Math.sqrt(p.width**2+p.height**2)*.8,o=e.size??120,s=t.widthOfTextAtSize(n,o),c=s>a?a/s*o:o,l=t.widthOfTextAtSize(n,c),u=c,d=p.width/2,f=p.height/2;p.drawText(n,{x:d-l/2,y:f-u/2,size:c,...t.drawTextOptions(),color:e.color?r(...e.color):r(.8,.8,.8),opacity:e.opacity??1,rotate:{angle:i,origin:{x:d,y:f}}})}function B(e,t={}){if(p==null)return 0;let{x:n=E,y:a=D,maxLines:o=0}=t;e=String(e).replace(/\r\n/g,`
`).replace(/\r/g,`
`);let s=t.gap??2;if(s){let n=e.split(`

`);if(n.length>1){let e=a;return n.forEach(n=>{e=B(n.trim(),{...t,y:e}),e+=s}),D=e,e}}let u=t.fontSize??c,d=u*l,f=t.w?t.w*_:k.w*_,m=ne(e,f,u,T);o>0&&m.length>o&&m.splice(o);let h=m.length*d,v=g-a*_-u;return i&&p.drawRectangle({x:n*_,y:g-a*_-h,width:f,height:h,opacity:.1,borderWidth:.5}),m.forEach(e=>{if(p==null)return;e=e.trim(),v<(y-(k.y+k.h))*_&&(U(),v=g-D*_-u);let a=n*_,o=T.widthOfTextAtSize(e,u);t.align===`center`?a+=(f-o)/2:t.align===`right`&&(a+=f-o),p.drawText(e,{x:a,y:v,size:u,lineHeight:d,...T.drawTextOptions(),color:t.color?r(...t.color):void 0}),t.href&&p.addLinkAnnotation({rect:{x:a,y:v-u*.25,width:o,height:u*1.35},uri:t.href}),i&&p.drawRectangle({x:a,y:v,width:o,height:u,opacity:.1,borderWidth:.5}),v-=d}),D=(g-u-v)/_,D}function V(e){if(p==null)return;let{x:t=E,y:n=D,w:i=k.w,h:a=0}=e;t*=_,n=g-n*_,p.drawLine({thickness:1,...e,color:e.color?r(...e.color):void 0,start:{x:t,y:n},end:{x:t+i*_,y:n-a*_}})}function H(e){if(p==null)return;let{x:t=E,y:n=D,w:i=k.w,h:a=0,fill:o,color:s,thickness:c,opacity:l}=e;p.drawRectangle({x:t*_,y:g-n*_-a*_,width:i*_,height:a*_,color:o?r(...o):void 0,borderColor:s?r(...s):void 0,borderWidth:c,opacity:l,borderOpacity:l})}function U(e=a){q(),K(!1,e)}async function W(){return q(),await ee(f,e.meta??u(),e.rdf),o(await f.save())}function oe(e={}){T=e.bold?w:C}let G={finishPdf:W,drawBox:B,drawLine:V,drawRect:H,drawWatermark:z,nextPage:U,setLayoutBox:I,moveX:R,moveY:L,setX:ie,setY:ae,getX:A,getY:j,px:N,py:re,getPage:P,setFont:oe,pdfDocument:f,mm:_,pageHeight:g,pageWidth:h,pageWidthInMM:v,pageHeightInMM:y};function K(t=!s,n=a){return t||(p=f.addPage({width:n[0],height:n[1]}),F()),e.onBeforePage?.(G),T=C,D=k.y,p}s&&K(!0,a);function q(){p!=null&&(e.onAfterPage?.(G,p),m++)}return G}function ie(e,t){let n=t??`380`;return e.docTitle?.[n]?`docTitle.${n}`:`invoice`}function ae(e,t){let n=t??`380`;return e.docTotal?.[n]?`docTotal.${n}`:`linePayment`}var P={de:{date:`Datum: {date}`,reference:`Rechnungsnummer: {title}`,dueDate:`Zahlbar bis: {date}`,deliveryDate:`Lieferdatum: {date}`,iban:`IBAN: {iban}`,phone:`Telefon: {phone}`,email:`E-Mail: {email}`,vatId:`Umsatzsteuer-ID: {vatId}`,taxId:`Steuernummer: {taxId}`,invoice:`Rechnung {title}`,docTitle:{381:`Gutschrift {title}`,384:`Rechnungskorrektur {title}`,386:`Vorauszahlungsrechnung {title}`,389:`Gutschrift {title}`},itemQuantity:`Menge`,description:`Beschreibung`,itemPrice:`Einzelpreis`,taxRate:`Steuersatz`,amount:`Betrag`,lineNet:`Netto`,lineTax:`Umsatzsteuer`,linePayment:`Zu zahlen {currency}`,docTotal:{381:`Gutschriftbetrag {currency}`},disclaimer:`Diese Rechnung ist kein Original! Sie wurde aus der E-Rechnung mit der SHA256-Prüfsumme {xmlChecksum} erstellt.

Die Originaldaten sind in diese PDF Datei eingebettet (ZUGFeRD).

Diese Datei wurde kostenlos über https://{disclaimerHost} erstellt.`},en:{date:`Date: {date}`,reference:`Invoice number: {title}`,dueDate:`Due date: {date}`,deliveryDate:`Delivery date: {date}`,iban:`IBAN: {iban}`,phone:`Phone: {phone}`,email:`E-Mail: {email}`,vatId:`VAT ID: {vatId}`,taxId:`Tax ID: {taxId}`,invoice:`Invoice {title}`,docTitle:{381:`Credit note {title}`,384:`Corrected invoice {title}`,386:`Prepayment invoice {title}`,389:`Self-billed invoice {title}`},itemQuantity:`Quantity`,description:`Description`,itemPrice:`Unit price`,taxRate:`Tax rate`,amount:`Amount`,lineNet:`Net`,lineTax:`Tax`,linePayment:`Total {currency}`,docTotal:{381:`Credit amount {currency}`},disclaimer:`This invoice is not an original! It was created from the E-Invoice with the SHA256 checksum {xmlChecksum}.

The original data is embedded in this PDF file (ZUGFeRD).

This file was created for free via https://{disclaimerHost}`},fr:{date:`Date: {date}`,reference:`Numéro de facture: {title}`,dueDate:`À payer jusqu'au: {date}`,deliveryDate:`Date de livraison: {date}`,iban:`IBAN: {iban}`,phone:`Téléphone: {phone}`,email:`E-Mail: {email}`,vatId:`Identifiant TVA: {vatId}`,taxId:`Numéro de TVA: {taxId}`,invoice:`Facture {title}`,docTitle:{381:`Avoir {title}`,384:`Facture rectificative {title}`,386:`Facture d'acompte {title}`,389:`Autofacturation {title}`},itemQuantity:`Quantité`,description:`Description`,itemPrice:`Prix unitaire`,taxRate:`Taux de taxe`,amount:`Montant`,lineNet:`Net`,lineTax:`Taxe`,linePayment:`Total {currency}`,docTotal:{381:`Montant de l'avoir {currency}`},disclaimer:`Cette facture n'est pas un original! Il a été créé à partir de la facture électronique avec la somme de contrôle SHA256 {xmlChecksum}.

Les données originales sont intégrées dans ce fichier PDF (ZUGFeRD).

Ce fichier a été créé gratuitement via https://{disclaimerHost}`},nl:{date:`Datum: {date}`,reference:`Factuurnummer: {title}`,dueDate:`Te betalen vóór: {date}`,deliveryDate:`Leverdatum: {date}`,iban:`IBAN: {iban}`,phone:`Telefoon: {phone}`,email:`E-mail: {email}`,vatId:`Btw-nummer: {vatId}`,taxId:`Fiscaal nummer: {taxId}`,invoice:`Factuur {title}`,docTitle:{381:`Creditnota {title}`,384:`Gecorrigeerde factuur {title}`,386:`Vooruitbetalingsfactuur {title}`,389:`Self-billing factuur {title}`},itemQuantity:`Aantal`,description:`Omschrijving`,itemPrice:`Stukprijs`,taxRate:`Btw-tarief`,amount:`Bedrag`,lineNet:`Netto`,lineTax:`Btw`,linePayment:`Te betalen {currency}`,docTotal:{381:`Creditbedrag {currency}`},disclaimer:`Deze factuur is geen origineel! Ze is gemaakt op basis van de e-factuur met SHA256-controlesom {xmlChecksum}.

De originele gegevens zijn in dit PDF-bestand ingesloten (ZUGFeRD).

Dit bestand is gratis gemaakt via https://{disclaimerHost}`},da:{date:`Dato: {date}`,reference:`Fakturanummer: {title}`,dueDate:`Betales senest: {date}`,deliveryDate:`Leveringsdato: {date}`,iban:`IBAN: {iban}`,phone:`Telefon: {phone}`,email:`E-mail: {email}`,vatId:`Momsnummer: {vatId}`,taxId:`CVR-nr.: {taxId}`,invoice:`Faktura {title}`,docTitle:{381:`Kreditnota {title}`,384:`Korrigeret faktura {title}`,386:`Forudbetalingsfaktura {title}`,389:`Selvfaktureret faktura {title}`},itemQuantity:`Antal`,description:`Beskrivelse`,itemPrice:`Enhedspris`,taxRate:`Momssats`,amount:`Beløb`,lineNet:`Netto`,lineTax:`Moms`,linePayment:`At betale {currency}`,docTotal:{381:`Kreditbeløb {currency}`},disclaimer:`Denne faktura er ikke en original! Den er oprettet ud fra e-fakturaen med SHA256-kontrolsummen {xmlChecksum}.

De originale data er indlejret i denne PDF-fil (ZUGFeRD).

Denne fil blev oprettet gratis via https://{disclaimerHost}`},sv:{date:`Datum: {date}`,reference:`Fakturanummer: {title}`,dueDate:`Förfallodatum: {date}`,deliveryDate:`Leveransdatum: {date}`,iban:`IBAN: {iban}`,phone:`Telefon: {phone}`,email:`E-post: {email}`,vatId:`Momsregistreringsnummer: {vatId}`,taxId:`Organisationsnummer: {taxId}`,invoice:`Faktura {title}`,docTitle:{381:`Kreditnota {title}`,384:`Korrigerad faktura {title}`,386:`Förskottsfaktura {title}`,389:`Självfakturering {title}`},itemQuantity:`Antal`,description:`Beskrivning`,itemPrice:`Styckpris`,taxRate:`Momssats`,amount:`Belopp`,lineNet:`Netto`,lineTax:`Moms`,linePayment:`Att betala {currency}`,docTotal:{381:`Kreditbelopp {currency}`},disclaimer:`Denna faktura är inte ett original! Den har skapats från e-fakturan med SHA256-kontrollsumman {xmlChecksum}.

Originaldatan är inbäddad i denna PDF-fil (ZUGFeRD).

Denna fil skapades gratis via https://{disclaimerHost}`},fi:{date:`Päivämäärä: {date}`,reference:`Laskun numero: {title}`,dueDate:`Eräpäivä: {date}`,deliveryDate:`Toimituspäivä: {date}`,iban:`IBAN: {iban}`,phone:`Puhelin: {phone}`,email:`Sähköposti: {email}`,vatId:`ALV-tunnus: {vatId}`,taxId:`Y-tunnus: {taxId}`,invoice:`Lasku {title}`,docTitle:{381:`Hyvityslasku {title}`,384:`Korjattu lasku {title}`,386:`Ennakkolasku {title}`,389:`Itselaskutus {title}`},itemQuantity:`Määrä`,description:`Kuvaus`,itemPrice:`Yksikköhinta`,taxRate:`ALV-kanta`,amount:`Summa`,lineNet:`Netto`,lineTax:`ALV`,linePayment:`Maksettava {currency}`,docTotal:{381:`Hyvityksen määrä {currency}`},disclaimer:`Tämä lasku ei ole alkuperäinen! Se on luotu sähköisestä laskusta, jonka SHA256-tarkistussumma on {xmlChecksum}.

Alkuperäiset tiedot on upotettu tähän PDF-tiedostoon (ZUGFeRD).

Tämä tiedosto luotiin ilmaiseksi osoitteessa https://{disclaimerHost}`},nb:{date:`Dato: {date}`,reference:`Fakturanummer: {title}`,dueDate:`Forfallsdato: {date}`,deliveryDate:`Leveringsdato: {date}`,iban:`IBAN: {iban}`,phone:`Telefon: {phone}`,email:`E-post: {email}`,vatId:`MVA-nummer: {vatId}`,taxId:`Organisasjonsnummer: {taxId}`,invoice:`Faktura {title}`,docTitle:{381:`Kreditnota {title}`,384:`Korrigert faktura {title}`,386:`Forskuddsfaktura {title}`,389:`Selvfakturering {title}`},itemQuantity:`Antall`,description:`Beskrivelse`,itemPrice:`Enhetspris`,taxRate:`MVA-sats`,amount:`Beløp`,lineNet:`Netto`,lineTax:`MVA`,linePayment:`Å betale {currency}`,docTotal:{381:`Kreditbeløp {currency}`},disclaimer:`Denne fakturaen er ikke et original! Den er opprettet fra e-fakturaen med SHA256-kontrollsummen {xmlChecksum}.

Originaldataene er innebygd i denne PDF-filen (ZUGFeRD).

Denne filen ble opprettet gratis via https://{disclaimerHost}`},pt:{date:`Data: {date}`,reference:`Número da fatura: {title}`,dueDate:`Pagável até: {date}`,deliveryDate:`Data de entrega: {date}`,iban:`IBAN: {iban}`,phone:`Telefone: {phone}`,email:`E-mail: {email}`,vatId:`Número de IVA: {vatId}`,taxId:`NIF: {taxId}`,invoice:`Fatura {title}`,docTitle:{381:`Nota de crédito {title}`,384:`Fatura corrigida {title}`,386:`Fatura de adiantamento {title}`,389:`Autofaturação {title}`},itemQuantity:`Quantidade`,description:`Descrição`,itemPrice:`Preço unitário`,taxRate:`Taxa de IVA`,amount:`Montante`,lineNet:`Líquido`,lineTax:`IVA`,linePayment:`Total {currency}`,docTotal:{381:`Valor do crédito {currency}`},disclaimer:`Esta fatura não é um original! Foi criada a partir da fatura eletrónica com a soma de verificação SHA256 {xmlChecksum}.

Os dados originais estão incorporados neste ficheiro PDF (ZUGFeRD).

Este ficheiro foi criado gratuitamente em https://{disclaimerHost}`},el:{date:`Ημερομηνία: {date}`,reference:`Αριθμός τιμολογίου: {title}`,dueDate:`Πληρωτέο έως: {date}`,deliveryDate:`Ημερομηνία παράδοσης: {date}`,iban:`IBAN: {iban}`,phone:`Τηλέφωνο: {phone}`,email:`E-mail: {email}`,vatId:`Αριθμός ΦΠΑ: {vatId}`,taxId:`ΑΦΜ: {taxId}`,invoice:`Τιμολόγιο {title}`,docTitle:{381:`Πιστωτικό τιμολόγιο {title}`,384:`Διορθωμένο τιμολόγιο {title}`,386:`Τιμολόγιο προκαταβολής {title}`,389:`Αυτοτιμολόγηση {title}`},itemQuantity:`Ποσότητα`,description:`Περιγραφή`,itemPrice:`Τιμή μονάδας`,taxRate:`Συντελεστής ΦΠΑ`,amount:`Ποσό`,lineNet:`Καθαρό`,lineTax:`ΦΠΑ`,linePayment:`Σύνολο {currency}`,docTotal:{381:`Ποσό πίστωσης {currency}`},disclaimer:`Αυτό το τιμολόγιο δεν είναι πρωτότυπο! Δημιουργήθηκε από το ηλεκτρονικό τιμολόγιο με άθροισμα ελέγχου SHA256 {xmlChecksum}.

Τα πρωτότυπα δεδομένα είναι ενσωματωμένα σε αυτό το αρχείο PDF (ZUGFeRD).

Αυτό το αρχείο δημιουργήθηκε δωρεάν μέσω https://{disclaimerHost}`},ro:{date:`Data: {date}`,reference:`Număr factură: {title}`,dueDate:`Scadent la: {date}`,deliveryDate:`Data livrării: {date}`,iban:`IBAN: {iban}`,phone:`Telefon: {phone}`,email:`E-mail: {email}`,vatId:`Cod TVA: {vatId}`,taxId:`Cod fiscal: {taxId}`,invoice:`Factură {title}`,docTitle:{381:`Notă de credit {title}`,384:`Factură corectată {title}`,386:`Factură de avans {title}`,389:`Autofacturare {title}`},itemQuantity:`Cantitate`,description:`Descriere`,itemPrice:`Preț unitar`,taxRate:`Cotă TVA`,amount:`Sumă`,lineNet:`Net`,lineTax:`TVA`,linePayment:`Total {currency}`,docTotal:{381:`Suma creditată {currency}`},disclaimer:`Această factură nu este un original! A fost creată din factura electronică cu suma de control SHA256 {xmlChecksum}.

Datele originale sunt încorporate în acest fișier PDF (ZUGFeRD).

Acest fișier a fost creat gratuit prin https://{disclaimerHost}`}},F=/\{([^{}]+)\}/g;function I(e,t){let n=[];return{text:e.replace(F,(e,r)=>{let i=r.trim();return i in t?t[i]??``:(n.push(i),``)}),unknown:n}}function L(t){return t?t.address?String(t.address).split(`
`):[t.title,t.street,[t.zip,t.city].filter(e).join(` `)].filter(e):[]}function R(e,t,n){let r=L(t);n[`${e}.title`]=t?.title??``,n[`${e}.street`]=t?.street??``,n[`${e}.zip`]=t?.zip??``,n[`${e}.city`]=t?.city??``,n[`${e}.phone`]=t?.phone??``,n[`${e}.email`]=t?.email??``,n[`${e}.vatId`]=t?.vatId??``,n[`${e}.taxId`]=t?.taxId??``,n[`${e}.address`]=r.join(`
`),n[`${e}.addressLine`]=r.join(` • `)}function z(e,t){let{i18n:n,locale:r}=t,i={};R(`seller`,e.seller,i),R(`buyer`,e.buyer,i);let a=m(e.doc.date),o=p(e.doc.dueDate,e.doc.date),s=h(e.doc.deliveryDate,e.doc.date);return i.title=e.doc.title??``,i.date=a?c(a).toLocaleDateString(r):``,i.dateLong=a?c(a).toLocaleDateString(r,{year:`numeric`,month:`long`,day:`numeric`}):``,i.dueDate=o?c(o).toLocaleDateString(r):``,i.deliveryDate=s?c(s).toLocaleDateString(r):``,i.dateShort=x(a,n),i.dateLongNumeric=S(a,n),i.iban=e.iban??``,i.notes=e.doc.notes??``,i.currency=e.doc.currency??n.currency??``,i[`totals.net`]=b(e.doc.net,n),i[`totals.gross`]=b(e.doc.gross,n),i.page=t.page==null?``:String(t.page),i}function B(e,t){let{i18n:n}=t;return{"pos.quantity":w(e.itemQuantity,n),"pos.description":e.description??``,"pos.unitPrice":w(e.itemNet,{...n,minimumFractionDigits:2}),"pos.taxRate":C(e.taxRate,n),"pos.amount":b(e.net,n)}}function V(e,t){let{i18n:n}=t;return{"tax.rate":C(e.taxRate,n),"tax.net":b(e.net,n),"tax.amount":b(e.tax,n)}}function H(e){if(!e)return;let t=/^#?([0-9a-f]{6})$/i.exec(e.trim());if(!t)return;let n=Number.parseInt(t[1],16);return[(n>>16&255)/255,(n>>8&255)/255,(n&255)/255]}function U(e,t){let n=e??`first`;return n===`all`||n===t}function W(e,t,n){let r=e.reduce((e,t)=>e+(typeof t.width==`number`?t.width:0),0),i=e.filter(e=>e.width===`*`).length,a=i>0?Math.max(0,(n-r)/i):0,o=t;return e.map(e=>{let t=e.width===`*`?a:typeof e.width==`number`?e.width:0,n={key:e.key,x:o,w:t,align:e.align,color:e.color};return o+=t,n})}function oe(e,t,n,r={}){let i=r.page??`first`,o=new Set(r.slots??[]),s=[],{defaults:c}=t,l={i18n:n.i18n,locale:n.locale,page:r.pageNumber},u=z(n.invoice,l);function d(e,t){let{text:n,unknown:r}=I(e,t);for(let e of r)s.push(`Unknown variable: {${e}}`);return n}function f(e){return(e??c.font)===`bold`}function p(t,n){let r=d(t.text,n);t.optional&&r.trim()===``||(e.setFont({bold:f(t.font)}),e.drawBox(r,{x:t.x,y:t.y,w:t.w,fontSize:t.fontSize??c.fontSize,align:t.align,color:H(t.color??c.color),maxLines:t.maxLines,href:t.href}))}function m(t){let{line:n}=t;e.drawLine({x:n.x,y:n.y,w:n.w,h:n.h,thickness:n.thickness,color:H(n.color),opacity:n.opacity})}function h(t){let{rect:n}=t;e.drawRect({x:n.x,y:n.y,w:n.w,h:n.h,fill:H(n.fill),color:H(n.color),thickness:n.thickness,opacity:n.opacity})}function g(t){let{image:n}=t;if(!o.has(n.src)){if(t.optional)return;s.push(`Missing image slot: ${n.src}`);return}e.drawImageSlot?.(n.src,{x:n.x,y:n.y,w:n.w,h:n.h})}for(let e of t.boxes)U(e.pages,i)&&(`text`in e?p(e,u):`line`in e?m(e):`rect`in e?h(e):`image`in e&&g(e));let _=t.content;if(_){let t=i===`rest`?_.rest??_.first:_.first??_.rest;t&&e.setLayoutBox(t),_.table&&t&&b(_.table,t);for(let e of _.after??[])p(e,u)}function v(t,n=0){t&&(n&&e.moveY(n),e.drawLine({thickness:t.thickness,color:H(t.color)}))}function y(t,n,r,i,a){let o=e.getY();e.setFont({bold:i});for(let i of t){let t=n[i.key];if(t==null)continue;let s=H(a??i.color);e.drawBox(d(t,r),{x:i.x,y:o,w:i.w,align:i.align,color:s})}}function b(t,r){let i=W(t.columns,r.x,r.w),o=t.row?.gap??2,s={};for(let e of t.columns)s[e.key]=e.label??``;y(i,s,{},(t.header?.font??`bold`)===`bold`,t.header?.color),v(t.header?.ruleBelow??{thickness:.5},o),e.moveY(o);let c=a(Object.values(n.invoice.doc.positions??{}),`sort asc`),d={};for(let e of t.columns)d[e.key]=e.value;for(let t of c)y(i,d,{...u,...B(t,l)},!1),e.moveY(o);for(let e of t.footer??[])x(e,i,o)}function x(t,r,i){let o=t.font===`bold`,s=n=>{v(t.ruleAbove),t.ruleAbove&&e.moveY(i),y(r,t.cells,n,o,t.color),e.moveY(i),v(t.ruleBelow),t.ruleBelow&&e.moveY(i)};if(t.each===`taxes`){let e=n.invoice.taxes??{};for(let t of a(Object.values(e),`taxRate asc`))s({...u,...V(t,l)})}else s(u)}return{warnings:s}}async function G(e){let{PdfArray:t,PdfName:n}=await O(),r=[],i=e;for(let[e,t]of i.context.registry.entries())if(t?.entries instanceof Map){let i=t.entries.get(n.of(`Type`));i?.value===`Filespec`?(t.entries.set(n.of(`AFRelationship`),n.of(`Alternative`)),r.push(e)):i?.value===`EmbeddedFile`&&t.entries.set(n.of(`Subtype`),n.of(`application/xml`))}r.length>0&&i.getCatalog().entries.set(n.of(`AF`),new t(r))}async function K(n,r={}){let{currency:s=`EUR`,gross:l=0,net:f=0,positions:v={},notes:y,title:x=``}=n.doc,S=m(n.doc.date),T=p(n.doc.dueDate,n.doc.date),D=h(n.doc.deliveryDate,n.doc.date),{sidebar:k=!0,addressWindow:ee=!0,quantity:A=r.quantity??!0,fontSize:j=10,lineHeight:M=d}=n.layout??{},{locale:N=`de-DE`,localeMessages:te={},meta:ne=u(),disclaimerHost:F=`holtwick.de`}=r,I={locale:N,currency:s},L=N.split(`-`)[0].toLowerCase(),R={...P.en,...P[L],...te[L]},{t:z}=E(R),B,V,{layout:H,...U}=r,{finishPdf:W,drawBox:K,drawLine:q,drawRect:se,mm:J,pdfDocument:Y,moveX:ce,moveY:X,pageWidthInMM:le,pageHeightInMM:ue,pageWidth:de,pageHeight:fe,setLayoutBox:pe,setFont:Z,setX:me,setY:he,getX:ge,getY:_e,getPage:ve}=await re({pdfa:!0,meta:ne,async onSetup(e){if(r.backgroundImagePng)V=e.embedPng(o(r.backgroundImagePng));else if(r.backgroundPdf){let{PDF:t}=await O(),n=await t.load(o(r.backgroundPdf));n&&n.getPageCount()>0&&(B=await e.embedPage(n,0))}},onBeforePage(e){V?e.getPage()?.drawImage(V,{x:0,y:0,width:e.pageWidth,height:e.pageHeight}):B&&e.getPage()?.drawPage(B),r.onWatermark&&r.onWatermark(e)},...U,rdf:r.rdf??_(n),fontSize:j,lineHeight:M}),Q=j*M/J;if(r.layout){let e={};if(n.logo){let r=typeof n.logo==`string`&&n.logo.startsWith(`data:`)?t(n.logo):o(n.logo);r&&(e.logo=r)}oe({setFont:Z,setLayoutBox:pe,drawBox:(e,t)=>K(e,t??{}),drawLine:e=>q(e),drawRect:e=>se(e),getY:_e,moveY:X,drawImageSlot:(t,n)=>{let r=e[t];if(!r)return;let i=Y.embedPng(r),a=n.h??18,o=n.w??i.width/i.height*a;ve()?.drawImage(i,{x:(n.x??0)*J,y:fe-(n.y??0)*J-a*J,width:o*J,height:a*J})}},r.layout,{invoice:n,locale:N,i18n:I},{slots:Object.keys(e),pageNumber:1})}if(!r.layout){if(pe({x:25,y:10,w:172,h:ue-20}),n.logo){let e=typeof n.logo==`string`&&n.logo.startsWith(`data:`)?t(n.logo):o(n.logo);if(!e)throw Error(`Failed to decode logo data`);let r=Y.embedPng(e),i=.4,a=r.width*i,s=r.height*i;ve()?.drawImage(r,{x:25*J-10,y:fe-20*J-s+10,width:a,height:s})}let r=n.seller?.address||[n.seller?.title,n.seller?.street,[n.seller?.zip,n.seller?.city].filter(e).join(` `)].filter(e).join(`
`),i=n.buyer?.address||[n.buyer?.title,n.buyer?.street,[n.buyer?.zip,n.buyer?.city].filter(e).join(` `)].filter(e).join(`
`);ee&&(K(r.replace(/\n/g,` • `),{x:25,y:50,w:80,fontSize:7/10*j,maxLines:1}),q({x:25,y:54.5,w:80,thickness:.25})),K(i,{x:25,y:57,w:85,maxLines:5});function u(){return{x:125,w:72,align:`right`}}if(k){he(20),K(r,u()),X(Q),S&&K(z(`date`,{date:c(S).toLocaleDateString(N)}),u()),D&&D!==S&&K(z(`deliveryDate`,{date:c(D).toLocaleDateString(N)}),u()),T&&T!==S&&K(z(`dueDate`,{date:c(T).toLocaleDateString(N)}),u()),x&&K(z(`reference`,{title:x}),u());let e=n?.iban;e&&K(z(`iban`,{iban:e}),u()),X(Q);let t=n?.seller?.phone;t&&K(z(`phone`,{phone:t}),{...u(),href:`tel:${t}`});let i=n?.seller?.email;i&&K(z(`email`,{email:i}),{...u(),href:`mailto:${i}`});let a=n?.seller?.vatId;a&&K(z(`vatId`,{vatId:a}),u());let o=n?.seller?.taxId;o&&K(z(`taxId`,{taxId:o}),u())}Z({bold:!0}),S&&K(c(S).toLocaleDateString(N,{year:`numeric`,month:`long`,day:`numeric`}),{...u(),y:111,fontSize:13/10*j}),K(z(ie(R,n.documentTypeCode),{title:x}),{x:25,y:107,w:120,fontSize:24/10*j,maxLines:1});{function e(e){let t=_e();A&&(e.itemQuantity&&K(e.itemQuantity,{x:25,y:t}),e.itemPrice&&K(e.itemPrice,{x:137,y:t,w:20,align:`right`})),e.taxRate&&K(e.taxRate,{x:157,y:t,w:20,align:`right`}),e.amount&&K(e.amount,{x:177,y:t,w:20,align:`right`}),e.description&&(A?K(e.description,{x:45,y:t,w:92}):K(e.description,{x:25,y:t,w:112})),X(2)}X(Q);function t(){Z({bold:!0}),e({itemQuantity:z(`itemQuantity`),description:z(`description`),itemPrice:z(`itemPrice`),taxRate:z(`taxRate`),amount:z(`amount`)}),q({thickness:.5}),X(2),Z()}t();let r={};Object.values(v).forEach((t,n)=>{t.taxRate&&(r[t.taxRate]=r[t.taxRate]??{net:0,tax:0,taxRate:t.taxRate},r[t.taxRate].net+=t.net??0,r[t.taxRate].tax+=(t.gross??0)-(t.net??0)),e({itemQuantity:w(t.itemQuantity,I),description:t.description??``,itemPrice:w(t.itemNet,{...I,minimumFractionDigits:2}),taxRate:C(t.taxRate,I),amount:b(t.net,I)})}),q({thickness:.25}),X(2),e({description:z(`lineNet`),amount:b(f,I)}),n.taxes&&(r=n.taxes),a(Object.values(r),`taxRate asc`).forEach(t=>{e({description:z(`lineTax`),itemPrice:b(t.net,I),taxRate:C(t.taxRate,I),amount:b(t.tax,I)})}),q({thickness:.25}),X(2),Z({bold:!0}),e({description:z(ae(R,n.documentTypeCode),{currency:s}),amount:b(l,I)}),q({thickness:.5}),X(.5),q({thickness:.5})}Z(),X(Q),Z(),y&&K(y.trim())}let $=``;if(n.xml){let e=o(n.xml);Y.addAttachment(g,e,{mimeType:`application/xml`}),await G(Y),$=z(`disclaimer`,{xmlChecksum:r.xmlChecksum??i(new Uint8Array(await crypto.subtle.digest(`SHA-256`,e.buffer))),disclaimerHost:F??`holtwick.de`})}return X(Q),r.disclaimer!==!1&&$&&K($,{x:25,w:172,color:[1,0,0],href:`https://${F}?ref=pdf`}),W()}export{K as createInvoice};